Après un repos de 4 jours (pont du mardi 14 juillet), nous repartons vers de nouvelles aventures en se dirigeant vers La Varenne - Chennevières. Mais cette fois, ce n'est pas pour faire une immersion avec l'attachement conduite, mais bien pour aller casser un train ! Car aujourd'hui, avec l'équipe de l'USFR, nous allons sur un vrai train pour simuler (et résoudre) des avaries (terme technique pour dire "problèmes").
Mais avant cela, nous nous retrouvons dans le même bâtiment que celui de l'attachement conduite (mais cette fois, nous sommes un étage plus haut, dans les locaux progressivement abandonnés du centre de formation de La Varenne). En attendant l'équipe complète, les membres présents relisent une FT (Fiche Travaux) concernant un changement des signaux sur la ligne B entre Gentilly et Parc de Sceaux / Fontenay-aux-Roses (il s'agit, en outre, d'un réindexage des signaux). Mais pour éviter d'avoir à rédiger un nouveau document complet (c'est très long à rédiger), l'équipe ne rédige qu'une FMO (Fiche MOdification), sorte de git diff qui rend compte des différences entre l'ancienne version (en jaune) et la nouvelle version (en rouge).
Autour de 9 heures 30, nous sommes tous allés récupérer un train voie F. Après s'être installés en cabine, nous avions pu commencer :

Première page du guide de Dépannage

Ecran d'aide à la maintenance montrant une défaillance (en jaune)
En passant, l'équipe m'a expliqué le déroulé de l'épreuve de conduite finale. Elle consiste en plusieurs étapes ; il faut réussir l'étape pour tenter de passer l'étape , et un échec suffit à vous faire éliminer.
L'épreuve d'examen conduite consiste en 4 étapes : (1) un QCM + simulateur nominal (sans problèmes), (2) un autre QCM + simulateur dégradé, (3) le traitement sur un vrai train d'une avarie tirée au sort + une seconde avarie ou un dégarage, et enfin (4) un oral.
Maintenant, passons à la deuxième panne :
Comme avant, les voyants "FU" et "Non déblocage" restent allumés. Mais cette fois, un test de freinage a montré qu'il s'agissait d'un ND total. Sur le tableau des états permanents (visible en haut de chaque écran dans la cabine), on voit en rouge le voyant "FU / BP-URG" (BP-URG = Bouton Poussoir (de frein) d'URGence). Le guide demande alors au conducteur d'aller vérifier dans les autres cabines l'état du bouton poussoir de freinage d'urgence. Mais avant ça, il faut s'assurer qu'il n'y a pas eu d'intrusion dans l'une des cabines (dans notre cas, il n'y en avait pas). Et effectivement, le BP-URG de la cabine arrière était enfoncé (et un coupe-circuit était en position 0).
La dernière avarie concernait cette fois les FI (Freins d'Immobilisation, qui garantissent que le train ne dérive pas lorqu'il est à l'arrêt, en gare ou garé). Il y avait cette fois 3 voyants allumés pendant le test des freins : "Tous FI serrés", "Non-Déblocage FI", "Tous bogies débloqués". Il faut noter que le voyant "Non Déblocage" était, quant à lui, éteint. Similairement à la première avarie, il faut descendre de la cabine et isoler le FT malade (c'est un peu costaud, une collègue s'est déjà bloquée le dos en voulant tirer sur la poignée).
D'ailleurs, les FI sont des freins pneumatiques qui sont serrés en cas de manque d'air. C'et un ressort qui vient pousser sur la plaque de frein, et ce ressort pousse dans une chambre à air qui, lorsque l'air est en pression nominale, vient comprimer le ressort et ainsi débloquer le frein.
Et avant de partir du train, Blandine nous a montré à tous comment atteler et désatteler deux trains :

Avant un attelage
A chaque fois qu'il y a eu une avarie, le conducteur doit remplir sur son bulletin de conduite toutes les étapes effectuées sur le train, ainsi que toutes les pages visitées.
Bulletin de Conduite pour les avaries
Enfin, avant de repartir manger, Blandine m'a raconté quelques anecdotes de stagiaires conducteurs précédents. On peut, par exemple, citer un stagiaire qui devait faire une alerte lumineuse. A la place, il a fait une alerte radio (donc sur tous les trains du secteur), ce qui a momentanément paralysé la ligne. Un autre (un peu large des épaules), en marchant sur un quai (voie E à La Varenne), a accidentellement mis un coup dans un rupteur de courant. Et cela s'est suivi de tous les trains autour qui ont fait "fyoooooon..." (ils se sont éteints) (Ca ne doit pas être marrant à expliquer au CCU quand même...).
Après avoir mangé, je suis revenu à Lagny pour continuer mon travail dans les archives (C'était fun en vrai, et au moins j'ai pu me mettre de la musique).
Aujourd'hui, journée classique : je suis à Lagny pour faire des trucs dans les archives. Après être arrivé un peu en retard (RER B goes brrr), et après avoir bu un thé avec les collègues, j'ai continué à faire du formatting. La tâche le plus pénible, probablement, est de copier-coller les fichiers des anciens dossiers vers les nouveaux (SharePoint est lent...). Ensuite, je dois manuellement mettre les tags sur les fichiers et sur les dossiers (par exemple, la date de publication et le type de ND/type de document).
Entre deux sessions, Blandine m'a montré une FA (Fiche d'Accompagnement) par rapport au guide de dépannage des MI09 (il fait approximativement 50 pages).
Pendant la matinée, rien de particulier : j'ai copié des documents, coller des documents, supprimer des dossiers vides, renommer des documents, mettre des tags sur des éléments... Mais en début d'après-midi, j'ai eu une idée : what if, je pouvais faire un script qui automatisait une partie du process ?
Seulement, un petit problème surgissait immédiatement : les ordinateurs de la RATP sont sous Windows (Windaube pour les intimes), et il n'y a qu'un seul langage de programmation qui m'est accessible : PowerShell, sorte de mix entre php (pour la syntaxe) et bash (pour les commandes). Et même si j'ai des connaissances en bash et un peu en php, je ne connais pas grand chose sous Windaube (coder sous Windows s'apparente pas mal à vouloir passer par Tokyo pour aller à Palaiseau depuis Paris).
Mais malgré cela, un bon développeur se doit de savoir faire des recherches en ligne. J'ai donc passé une grosse heure à construire un script qui automatise le copier-coller des anciens dossiers dans les nouveaux docSets.
scanner le dossier en cours pour trouver toutes les anciennes ND à reformater
scanner tous les docSets videspour i entre 0 et min(nombre_ND, nombre_docSetVide) :
ND à traiter = NDs[i]
si (le nom de la ND ne se termine pas en '') : --> c'est une méthode pour différencier les docSet des dossiers : les docSet se terminent toujours par ''
si (la ND n'a pas déja de docSet rempli) :
choisir un docSet vide et le renommer
copier tous les fichiers du dossier en cours dans le docSet choisi
Pseudo-code de l'algorithme utilisé
Cela me fait gagner un temps assez conséquent, car les copier-coller sous SharePoint sont affreusement lents. De plus, mon petit script a attiré l'attention du pôle formation (de l'USFR). Hakima (secrétaire) m'a donc assigné une nouvelle tâche à faire (par rapport aux mesures RGPD et au stockage des données)...
Comme hier, je suis à Lagny pour continuer mes affaires dans les archives. En arrivant au bureau, je me connecte donc sur l'ordinateur pour reprendre. Mais au moment d'aller vérifier dans les archives que rien ne s'est cassé pendant la nuit, je me suis rendu compte que des dossiers vides sont apparus. Ces dossiers étaient nommés avec des noms de ND déjà mises dans le nouveau format, à ceci près qu'il y avait un identifiant d'ordinateur à la fin du nom (en -PCxxxxxx). Cela est d'autant plus étrange que ces dossiers sont vides... Nous avons donc conjecturé avec Blandine et nos collègues qu'il s'agissait d'une opération automatique provenant de l'entreprise qui a fait la migration vers SharePoint.
Notons par ailleurs que, d'après les métadonnées de ces dossiers vides, ils ont été créés par des personnes de l'USFR (notamment, on retrouve majoritairement le PC de la responsable des archives, mais aussi quelques dossiers qui proviendraient de mon ordinateur...) (il faut également noter sur Sharepoint en tant que tel est assez cassé en terme d'ergonomie... il peut dupliquer visuellement des fichiers, faire des converisons implicites tordues...).
Après avoir mangé avec l'équipe et le boss, je me suis mis à améliorer mon algorithme de copie automatique. En fait, dans certaines vieilles archives, il y a des sous-dossiers nommés "old" ou "archive", qui contiennent des documents encore plus vieux. Et il ne faut pas que ces documents se mélangent avec les autres, car il peut y avoir des noms identiques, mais aussi et surtout car les documents dans "old" ou "archives" sont très souvent différents de ceux plus récents.
Jusqu'à présent, mon algorithme ne faisait pas la différence entre ces sous-dossiers spéciaux et les autres : il se contentait de déplacer tous les fichiers dans la nouvelle archive (le docSet). Et cela m'a valu de perdre pas mal de temps à refaire le tri à la main : certaines ND avaient quelques dizaines de fichiers "old".
L'amélioration se résume dans le pseudo-code suivant :
scanner le dossier en cours pour trouver toutes les anciennes ND à reformater
scanner tous les docSets videspour i entre 0 et min(nombre_ND, nombre_docSetVide) :
ND à traiter = NDs[i]
si (le nom de la ND ne se termine pas en '') : --> c'est une méthode pour différencier les docSet des dossiers : les docSet se terminent toujours par ''
si (la ND n'a pas déja de docSet rempli) :
choisir un docSet vide et le renommer
récupérer tous les fichiers dedans (avec leurs chemins respectifs)
pour chaque fichier :
s'il est dans un dossier "old/" :
le déplacer dans un nouveau sous-dossier "old/" dans le docSet
s'il est dans un dossier "archive/" :
le déplacer dans un nouveau sous-dossier "archive/" dans le docSet
sinon :
le déplacer normalement
Pseudo-code de la V2 de l'algorithme
Pour cette fois, j'ai directement fait mes tests dans la BDD de la RATP. Mais pour éviter de supprimer la moitié des archives, avant d'exécuter le programme complet, j'ai retiré toutes les instructions qui déplacaient/renommaient des trucs (et je les ai remplacées par des echo, équivalent de print en powershell). Une fois les tests concluants, j'ai pu tester sur les ND de la ligne B datant de 2023 (et ça a bien fonctionné).
Mais vers 15h, le cloud a soudainement arrêté de se synchroniser avec mon répertoire. Ne pouvant alors rien faire, j'ai fait quelques parties de tarot. Après avoir attendu pendant une (très) grosse demi-heure, la synchronisation s'est enfin rétablie (je pensais que c'était un admin qui m'avait coupé les accès au vu du nombre important d'opérations que je fais sur les Archives), et j'ai pu continuer jusqu'à 16h30, où je suis parti avec mon équipe.
Ainsi se conclut la troisième semaine de mes aventures à la RATP. A la semaine prochaine !